package com.itheima.Task03;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
//3. 定义一个标准的JavaBean，名叫Person，包含属性name、age。
//        使用反射的方式创建一个实例、调用构造函数初始化name、age，使用反射方式调用setName方法对名称进行设置，
//        不使用setAge方法直接使用反射方式对age赋值。

public class ClassT {
    public static void main(String[] args) throws Exception {


//        //创建反射获取对象
//        Class aClass = Student.class;
//
//        //调用构造传参
//        Constructor<Student> Name = aClass.getConstructor(String.class,int.class);
//        //实例化对象
//        Student student = Name.newInstance("李四", 24);
//        System.out.println(student);
//
//        //通过对象获得成员方法,并给这个方法传递参数进行变量赋值
//        Method setName = aClass.getMethod("setName", String.class);
//        setName.invoke(student,"张三");
//        System.out.println(student);
//
//       // 获取属性，并用暴力反射对该字段进行设置。
//        Field age = aClass.getDeclaredField("age");
//        age.setAccessible(true);
//        age.set(student,18);
//        System.out.println(student);
//
//        String name1 = student.getName();
//        System.out.println(name1);
//        int age1 = student.getAge();
//        System.out.println(age1);

    }
}
